package com.sharing.controller;

import com.sharing.common.Page;
import com.sharing.common.Result;
import com.sharing.domain.BrowseRecord;
import com.sharing.domain.UserProduction;
import com.sharing.service.BrowseRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author MingTian
 * @version 1.0
 * @description TODO
 * @date 2023/4/14 13:01
 */
@RestController
@RequestMapping("/browseRecord")
public class BrowseRecordController {
    @Autowired
    private BrowseRecordService browseRecordService;

    /**
     * 根据用户id查询浏览记录表中该用户的浏览作品记录（用户）
     * @param userId
     * @param page
     * @param size
     * @return
     */
    @GetMapping("/user")
    public Result<Page<UserProduction>> selectBrowseRecordsByUserId(Integer userId, Integer page, Integer size) {
        return browseRecordService.selectBrowseRecordsByUserId(userId, page, size);
    }

    /**
     * 根据主键查询浏览记录（管理员）
     * @param ids
     * @return
     */
    @GetMapping("/ids")
    public Result<List<BrowseRecord>> selectBrowseRecordsByIds(@RequestParam List<Integer> ids) {
        return browseRecordService.selectBrowseRecordsByIds(ids);
    }

    /**
     * 新增浏览记录
     * @param browseRecord
     * @return
     */
    @PostMapping
    public Result<BrowseRecord> insertBrowseRecord(@RequestBody BrowseRecord browseRecord) {
        return browseRecordService.insertBrowseRecord(browseRecord);
    }

//    /**
//     * 删除浏览记录(后台)
//     * 该接口不对外开放，后台将通过定时任务利用服务层的删除方法删除过期浏览记录
//     * @param ids
//     * @return
//     */
//    @DeleteMapping("/ids")
//    public Result<Integer> deleteBrowseRecords(@RequestParam List<Integer> ids) {
//        return browseRecordService.deleteBrowseRecords(ids);
//    }

    /**
     * 删除浏览记录（用户）
     * @param ids
     * @return
     */
    @DeleteMapping("/user")
    public Result<Integer> deleteBrowseRecords(@RequestParam List<Integer> ids) {
        return browseRecordService.deleteBrowseRecordsByUser(ids);
    }
}
